﻿#ifndef CAMERAFACTORY_H
#define CAMERAFACTORY_H

#include "../CameraCommon/CameraFactoryInterface.h"
#include "sdk/inc/TUCamApi.h"


extern "C" CAMERA_EXPORT Qly::CameraFactoryInterface * CreateInstance();
extern "C" CAMERA_EXPORT void Release(Qly::CameraFactoryInterface * p);


namespace Qly {
class CAMERA_EXPORT CameraFactory:public CameraFactoryInterface
{
public:
    CameraFactory();
    ~CameraFactory() override {}
    QList<IndustryCameraInfo> availableCameras( QSet<CameraType> types ) override;
    QList<IndustryCameraInfo> availableCameras( CameraType type ) override;
    QList<IndustryCameraInfo> availableCameras() override;
    IndustryCamera * findCameraByName(QString name, QObject *parent = 0) override;
    IndustryCamera * defaultCamera(QObject *parent = 0) override;
    QString vendorName() override;
    bool release(IndustryCamera * camera) override;

};

} //namespace Qly

#endif // CAMERAFACTORY_H
